Palletizing apparatus

ABSTRACT

A program-controlled article-transfer robot is adapted to load a pallet automatically with cartons of various sizes without dependence on a lengthy control program identifying the position of every carton in each of the rows and at each of the levels of the load. At the start, the robot is taught to load only a single carton on the pallet, ordinarily at one corner and at the surface of the pallet. When the robot goes through its routine for loading the first carton, it picks up a carton at a supply point, and it measures the dimensions of the carton. Subsequent cartons are loaded in successive rows and in successive levels automatically, in dependence on the first-carton loading coordinates, on the carton measurements, on the pallet size, and on the height limit of the load. The control apparatus prevents any projection of cartons outside the pallet outline and it also limits projection of cartons at upper levels beyond the nextlower level to within limits to insure stability. The procedure is also operable to create a complete program automatically, so that subsequent robot operations can load and unload pallets under program control.

United States Patent 1191 Rackman et al.

1451 Nov. 26, 1974 PALLETIZING APPARATUS lnventors: Michael I. Rackrnan, Brooklyn,

N.Y.; George C. Devol, 990 Ridgefield Rd., Wilton, Conn. 06897 Assignees: said Devol, by said Rackman; Paul S. Martin, Flushing, NY.

Filed: June 21, 1971 Appl. No.: 155,251

Related US. Application Data Division of Ser. No. 814,788, April 9, 1969, Pat. No. 3,586,176.

References Cited UNITED STATES PATENTS 10/1966 Devol 2l4/l BC 7/1969 Saul 2l4/l6.4 A

Primary Examiner-Robert G. Sheridan Assistant Examiner-George F. Abraham [57] ABSTRACT A program-controlled articie transfer robot is adapted to load a pallet automatically with cartons of various sizes without dependence on a lengthy control program identifying the position of every carton in each of the rows and at each of the levels of the load. At the start, the robot is taught to load only a single carton on the pallet, ordinarily at one corner and at the surface of the pallet. When the robot goes through its routine for loading the first carton, it picks up a carton at a supply point, and it measures the dimensions of the carton. Subsequent cartons are loaded in successive rows and in successive levels automatically, in de pendence on the first-carton loading coordinates, on the carton measurements, on the pallet size, and on the height limit of the load. The control apparatus prevents any projection of cartons outside the pallet outline and it also limits projection of cartons at upper levels beyond the next-lower level to within limits to insure stability.

The procedure is also operable to create a complete program automatically, so that subsequent robot operations can load and unload pallets under program control.

10 Claims, 11 Drawing Figures PATENIL, LEV 2 61974 SHEET 3 BF 9 hawk MQQQ E5 PATENIL, :asvzs I974 SHEET 7 OF 9 PALLETIZING APPARATUS This application is a division of application Ser. No. 814,788, filed Apr. 9, 1969 which has matured into US. Pat. No. 3,586,l76.

This invention relates generally to the field of article handling apparatus, and more particularly to automatic loading of a pallet with cartons or the like.

Automatic article handling equipments (robots) are presently available which can be programmed to piclr up an object at a starting location, transfer it to a discharge point, and deposit it in a predetermined orientation. Equipment of this kind is exemplified by U.S. Pat. Nos. 2,988,237, 3,306,442, 3,306,47l, 3,251,483 and 3,279,624. As taught in U.S. Pat. No. 3,306,471, such a robot has the capability of repeating a preprogrammed transfer routine any number of times, and at the end of each such routine choosing a new discharge point in accordance with special recorded instructions for each carton location. Such a program is time-consuming to create. Different programs are ordinarily needed for cartons of different sizes.

It is a general object of this invention to provide automatic equipment for loading cartons of various dimensions on a pallet of any size, to form a level of successive rows, and successive levels, without requiring program instructions for each carton location.

Another object of the invention is to provide equipment for limiting the lengths of such rows and the number of rows in any level so that the cartons do not extend beyond the boundaries of the pallet. A related object is to provide equipment for automatic pallet loading that allows overhang of a carton beyond its next lower level in either direction, but not so far as to produce instability.

Another object of the invention is to provide equipment which limits the height of the layers of cartons on the pallet to a predetermined maximum.

Another object of the invention is to provide for the automatic removal of a fully loaded pallet, and for replacing it with a fresh pallet for the continuation of the loading operation.

Another object of the invention is to provide similar automatic equipment for the unloading of pallets.

For loading a pallet, the robot is programmed simply to load a single carton at an initial location on the pallet. The robot is also programmed to measure the dimensions of the cartons being loaded on any given pallet. To load successive cartons on the pallet, the basic robot routine is continuously repeated but the programmed routine of the first carton-depositing operation is progressively incremented in accordance with the measured dimensions. Thus, a minimum of manually controlled program recording is required. The same basic routine is executed for each carton. Cartons of various dimensions can be loaded on various pallets with no change in elemental recorded program because in every case the program instructions are incremented in accordance with the dimensions of the cartons being handled. Overloading in each of the X, Y and Z directions is prevented by incrementing a respective count for the direction by the corresponding dimension of the carton being operated upon, and comparing the increasing count with a maximum allowable value. There are two main criteria for the allowable maximum: l) the outline of the pallet; and 2) the outline of each layer of cartons that supports the new layer being formed. No projection of a carton beyond the pallet outline is permitted. A carton being loaded on a supporting layer of cartons is permitted to project to a limited extent, but not enough to cause instability.

Once the loading instructions are determined for each carton on the pallet, they can be recorded, and the sequence of instructions can be used in the automatic unloading of the pallet.

in the illustrative embodiments of the invention below, an article-transfer robot is described that is capable of straight-line article-transfer motions along rectangular coordinates, directed parallel to the length, width and height of the pallet load. This form of robot is used for illustrative purposes, for avoiding complications in the description and for easier understanding of the invention. Some commerical forms of articletransfer robots are known having one or more arcuate motions of an article-transfer arm. Those robots can use the control portion of the herein disclosed apparatus through the use of suitable rectangular-to-polar motion-control apparatus. See, for example, the pending application Ser. No. 748,703, filed July 30, I968 by G. C. Devol et al. entitled WORK HEAD WITH AUTO- MATIC MOTIONS CONTROLS now U.S. Pat. No. 3,543,910 where there is described a robot having a system of rectangular-coordinate control for two arcuate motions of an article-transfer arm. That application describes loading a pallet with cartons according to rectangular-coordinate instructions, and it includes means for incrementing the program-recorded coordinates of a first carton in a row for loading additional cartons in that row.

A further characteristic of the illustrative apparatus described below is its use of absolute coordinates to identify the end-point of each motion. It will be recognized that features of the invention also apply to other robots, as those in which the instructions for each new end-point of a motion is based on digital increments of motion, as a displacement from each just-completed transfer operation.

Further objects, features and advantages of the invention will become apparent upon consideration of the following detailed description in conjunction with the drawing, in which:

F IG. 1 depicts symbolically a basic system for control for an article-handling robot;

FIG. 2 is a simplified perspective view of a first illustrative article-handling apparatus, omitting its control circuit and actuators;

FlGS. 3A and 3B depict the odd-level and even-level pallet loading patterns, respectively, produced by the illustrative embodiment of FIGS. 4-7;

FIG. 4 is a diagram of the control apparatus of a robot similar to FIG. 1, but FIG. 4 depicts a first illustra'tive modification of the control system of HO. 1 for achieving important features of the invention;

FIGS. 5-7 depict an illustrative control circuit that forms part of the apparatus of HO. 4 to control the loading of cartons on a pallet by the article-handling apparatus of FIG. 2 in accordance with the patterns of FIGS. 3A and 38.

FIG. 8 depicts the arrangement of FIGS. 4-7;

FIG. 9 depicts a second illustrative article-handling apparatus controlled by the system depicted symbolically in FIG. 4; and

FIG. it) depicts an illustrative form of additional circuitry to be included in the system of FIGS. 5-7 for controlling the article-handling apparatus of FIG. 9 in an automatic pallet loading sequence.

BASIC CONTROL SYSTEM OF FIG. 1 FOR LOADING ONE CARTON ON A PALLET A form of prior art robot control system used in the illustrative embodiments of the invention described below includes a plurality of actuators 19 that produce mechanical operation of the several parts of the robot. A separate actuator is commonly provided for each distinctive motion of the whole robot, e.g., vertical, horizontal, etc, these actuators being represented by the common block 19. Each actuator (cg, a hydraulic cylinder) is controlled for movement by a respective combination-code coordinate transmitted from memory drum 10 via read circuit 34 and over cable 31. Each actuator is coupled by a shaft or other coupling 18 to a respective digital encoder 17. The output of each encoder is a combination code that represents the instantaneous position of the robot element moved by that actuator. A series of summers 16 are provided, one such summer for each actuator. The coordinate transmitted by read circuit 34 from the memory drum to the actuator is coupled to the positive input of the summer. The instantaneous position of the robot element controlled by the actuator, as represented by encoder 17, is coupled to the negative input of the summer. The difference is transmitted to the actuator input. When the robot element has been moved to the position represented by the actuator coordinate in the memory drum, the summer output is zero, and motion stops. Where a hydraulic cylinder is used as an actuator, the output of the summer controls its valve. Suitable details that are not part of the present invention provide for deceleration as the motion nears it end-point.

Each of the entries l-N in the memory drum in the column labeled actuator coordinates includes a combination-code coordinate for each robot element which must be moved to a prescribed position during each step ofthe program. Such a robot typically includes coincidence detector 2la for determining when all elements have moved to the required positions, that is, when all of the summer outputs are zero, to enable the robot to perform the next function dictated by the recorded program. This may be an operation of the article gripper to grip or to release an article, or a variety ofother functions may be initiated; or the next function may be an advance for reading of another slot in the drum so that the next set of actuator coordinates can be transmitted over cable 31 to the summers l6. coordinate during even-level The actuators 19 are shown coupled by rods 22 to article handling apparatus 20. The article handling apparatus generally includes a gripper such as a pair ofjaws for gripping an article at a pick-up location. The apparatus also includes elements for transporting the jaws in the three dimensions and for turning the jaws as for changing the orientation of an article carried by the jawsv Each actuator that responds to a combinationcode recording ordinarily operates a different element of the robot.

The memory drum 10 includes another column of entries labelled function control signals." Each time a slot in the memory drum is read, any function-control signals present in that slot are conventionally transmitted over cable 23 to the related elements included in the article handling apparatus and in external apparatus that is to be coordinated with the robot or which is to control the robot. These signals control various functions. For example, a signal of this type may be used to cause the article holder to seize or release an article. Such a signal is useful, also, to turn on welding equipment carried by (or replacing) the robot jaws in order to weld some article on an assembly line after the actuators controlled by combination codes have moved the welding equipment to the proper position. Such robots perform various functions.

The memory drum includes a third column labeled slot selection instructions." Each instruction included in the memory drum, together with the same-numbered entries in the "actuator coordinates" and function control signals columns are sensed concurrently and form a slot." The "instruction" may be used to select another step in the program to be executed, often the next slot in the drum or, when necessary, a different selected slot.

The article handling apparatus typically operates in conjunction with a number of function controls 21. These controls are activated in response to recordings in the function control recordings ofdrum 10, recorded (as needed) by write circuits under control of function selector 24. One function control 21 is here assigned to the special function of operating switch 26 out of the illustrated position to a position in which one of the actuators 19 becomes subject to sensor 250 in the nature of a limit switch. Multiple limit switches may be provided, in practice, in progressive positions to produce deceleration, or sensor 250 may represent a control valve having decelerating control effects. This part of the control system is discussed below in greater detail. Switch 26 is interposed in a particular channel of the several channels represented by cable 30. Accordingly, operation of switch 26 into position for control of an actuator 19 by sensor 250 does not disturb control of the other actuators of the robot by summers 16, for responding to recordings on drum 10.

The robot includes a write circuit 27 which is coupled over cables 32 to the memory drum to control the writing of data into the drum. Data is read from the drum by read circuit 34 and transmitted to the actuators and the article handling apparatus over cables 23, 23a and 31. Memory drum 10 may be of a type that advances stepwise, or it may rotate continuously at high speed, or a static memory matrix may be used. Read and write circuits 34 and 27 normally include registers for temporarily storing information. Thus, when an appropriate memory drum slot is adjacent the read heads, information may be read from the drum and stored in a read register. Similarly, information to be entered into the drum can first be placed in write registers and later entered into a selected slot ofthe drum by operating recording control 12 at a convenient time. This arrangement is used to special advantage in achieving some purposes of the invention, as will be recognized in due course. Such recording controls are ordinarily manual, but for present purposes the controls are automatic in some instances, as for enabling information to be entered into the drum at the same time that a program step is being executed by the robot under control of the information taken from the drum and temporarily stored in the read register.

As disclosed in the aforesaid patents, robots of a class that are specially suited to present purposes are provided with a manual control 13 which enables an operator to control movements of the various actuators in the article handling apparatus. This is shown symbolically by cable 31a extended from manual control 13 via switching means 14 and 26 to actuators l9. Switching means 14 removes the actuators from control by summers 16. When the actuators are under manual control and the desired position is reached in all coordinates, the outputs of actuator encoders 17 represent these coordinates. The output of the encoders is transmitted over cable 29 to a section of the write circuit 27 which contains many gates under control of recording control 12. The operator can then actuate recording control 12 to transmit a signal over cable 25 to the write circuit 27 which causes the combination codes in the output of the encoders to be written into the memory drum. At the same time, the operator can use separate parts of recording control 12 and write circuit 27 to enter the appropriate function control and "slot set instructions" in the same slot of the drum at portions of the drum corresponding to the similarly labeled columns in the drum. This sequence is repeated for every step required of the robot in customary applications This procedure allows a complete program to be stored in the drum with all of the necessary coordinate information without the operator even being aware of the exact coordinates. Thus, the operator manually controls the robot to go through the desired routine. Each time another step is taken, the precise terminal coordinates are automatically stored in the robot memory drum, along with whatever additional instructions and function control signals are required. Of course, the latter are written deliberately by the operator in most cases. The complete program stored in the drum is sufficient to control the robot thereafter to go through the same routine repeatedly without any operator intervention.

The choice of the slot in the memory that is next to be in position for reading and for control of the apparatus, or for entry of control recordings, may be manually controlled by using manual slot selector 15. A digital code from manual control is compared with the output ofread" circuit 34a associated with the slot numher" part of the drum for rendering slot selector ll operative when there is identity. The slot selection may be mechanical, or it may be electronic as by activating read circuit 34, depending on the type ofdrum used. By operating switch 14a to the position in the drawing, the slot selection may also be controlled automatically, in various ways. For example, after output from unit 21a indicates that the coordinate and function instructions of any given slot have been carried out, the next slot that is to be effective may be the next-following slot of the drum. in that case, a function-selecting circuit 21 can be activated by an entry in drum 34 for causing transfer of the slot number of the drum presently in effect and registered in read circuit 34a, from that read circuit into register 34c. This register contains an adder that increases by 1 the number transferred from read circuit 34a. The function selector also controls a gate 34d to determine when comparing unit 34b shall respond to unit 34c. As another alternative, a channel of function control 2! can complete a circuit from the read circuit 34 of the slot selection instruction" part of the drum via and" gate 34c to comparing unit 34b. in that condition. the next slot to be effective will be the number of the slot that was read from the slot selection part of the drum.

Read" circuit 34a also provides code output that can be available when needed for entry into the slot selection instruction part of the drum, via write circuit 27 under control of unit 12. The slot number in effect for read circuits 34 can be relayed by read circuit 34a to a register in write circuit 27 and entered into the drum by a part of recording control l2, as required. This is used during the teaching" of a new program, primarily when the article transfer robot is being operated under control of manual controls i3 and 15; and at this time function selector 24 can be used to control entry of function control recordings into the appropriate track of the drum.

The foregoing represents a basic form of control of an article handling robot that is largely itnown to the prior art. It is utilized in carrying out various functions of the article handling apparatus that is to be discussed and is modified for that purpose as will be seen.

CARTON TRANSFER APPARATUS OF HO. 2

FIG. 2 depicts an article handling apparatus, designated 20 in FIG. I, which can be controlled in the manner described above for transferring cartons from place to place. It is to be understood that the article handling apparatus of FIG. 2 operates under control of the apparatus of FIG. 1 and incorporates the necessary actuators and encoders described in FIG. 1. FIG. 2 is intended to show a simplified form of apparatus which can be employed effectively for pallet loading. The three primary motions of the article holder in FIG. 2 are along X, Y and Z coordinates. in the copending application, Ser. No. 748,703 mentioned above, a suitable arrangement of actuators and encoders is illustrated in an X, Y and Z operator; and there it is also shown that other apparatus is adaptable to pallet loading, wherein jaws are carried on an arm movable in a polar-coordinate system. The X, Y and Z apparatus of FIG. 2 for transporting the jaws is for illustrative purposes.

The article handling apparatus in FIG. 2 is mounted on four corner posts 244. Two trolley bars 249, 242 are attached between respective pairs of the posts in the Y-coordinate direction. Travelling heads 236, 238 are mounted for movement in the Y-direction on these trolley bars, respectively. A first actuator drives the heads 240, 242 to transport head 212 in the Y- direction. Head 212 carries the article grippers (to be described} which seize and release cartons 246.

Mounted between the two heads 236, 238 is another trolley bar 234 extending in the X-coordinate direction. This trolley bar extends through head 232. A second actuator controls movement of head 232 in the X- direction along trolley bar 234. Extended through head 232 is a vertical shaft 230 which, when moved by a third actuator, move in the Z-direction, that is, along its own length. Shaft 230 is attached to head 212. A fourth actuator rotates head 2l2 selectively clockwise or counterclockwise as shown by arrows 23!, such actuator being contained either in head 212 for rotating the latter about shaft 230 or in head 232 for rotating shaft 236 and head 212.

At two adjoining sides of head 212 there are disposed two grippers 214, 218, each attached to the underside of the head 212 by a respective rod. These grippers serve to bear against two intersecting sides of a carbon. The grippers are not movable with respect to head 212. The intersection of the inner faces of the two grippers is along a line coincident with the axis of shaft 230. Thus, if shaft 230 is rotated while the grippers are bolding a carton, the carton will be rotated around the vertical corner defined by the inner faces of grippers 214, 218.

Also attached to head 212 are two cylinders 224, 228. Rods 222, 226 move within those cylinders, respectively. Grippers 216 and 220 depend from the ends of rods 222 and 226, respectively. so that grippers 214 and 216 form one clamp and grippers 218 and 220 form a clamp at right angles to clamp 214, 216. A fifth actuator contained in head 212 controls the movement of rod 222 and the relative displacement of gripper 216 from gripper 214. An encoder in head 212 is associated with this actuator, and provides an output which represents the distance between the two inner faces of grippers 214, 216. Similarly, a sixth actuator controls movement of rod 226 and the relative displacement of grippers 218 and 220; and an encoder in head 212 is associated with this actuator. and represents the distance between the inner faces of these two grippers.

It should be noted that although grippers 214, 218, as well as grippers 216, 220, are shown as being relatively thick, in actual practice they should be quite thin. Spaces will appear on the loaded pallet between adjacent cartons due to the thickness of the grippers, unless complex movements are added to avoid these spaces. The plate thickness should therefore be kept to a minimum, consistent with strength requirements. The encoders can be adjusted to include the thickness of a plate 214 or 218 with the actual dimensions of the cartons, where spaces are to remain between the cartons.

The encoders connected to shafts 222 and 226 enable the pairs of plates 214, 216 and 218, 220 to serve as calipers for measuring the size of the cartons, in addition to their article-gripping function. It would of course be feasible to use a vacuum article holder in some cases, and then the plates could be used as cali pers only, and in that there would be no spaces between cartons. Those spaces can be avoided in other ways, if found objectionable.

Attached to the inner face of gripper 220 is a pressure switch or sensor 252. This sensor provides an output signal when the inner face of gripper 220 bears against a side of a carton firmly enough to press the opposite side of the carton against plate 218. A similar sensor 254 is provided on the inner face of gripper 216. The two grippers move in the respective directions shown by arrows 221. As will be described below, the robot recognizes that the four grippers have firmly gripped a carton when the two sensors have operated.

Movement of shaft 230 in the vertical direction by the third actuator controls movement of head 212 and the four grippers in the Z-coordinate direction. On the underside of head 212 there is a third sensor 250 (see also FIG 1) which is operated when the underside of head 212 bears against the top of a carton. This sensor is used to notify the robot when head 212 has been lowered sufficiently to bear against the next carton to be loaded on the pallet.

FIG. 2 also shows a pick-up point represented by bin 248 containing a carton 246 in one corner thereof. The carton has length, width and height dimensions as shown by the letters L, W and H. A suitable conveyor mechanism (not shown) continuously delivers cartons 246 to the corner of the bin, along a line represented by arrow 245, with the longer dimension of each carton extending along the forward wall of the bin. The article handling apparatus is used to lift successive cartons from the bin and to place them on pallet 256. The robot of FIG. 2 with the control apparatus of FIG. 1 is initially controlled manually to lift a first carton from bin 248 and to place it at the corner of pallet 256 defined by the intersection of edges 264, 266, and this program is recorded and it is thereafter repeated automatically under program control, for loading the first article on any given pallet.

LOADING OF A SINGLE CARTON ON A PALLET The operator moves the various parts of manual con trol 13 for operating the actuators of the robot in the X and Y directions until it is above carton 246 in bin 248, with the axis of shaft 2311 approximately aligned with vertical corner 258 of the carton. This step is then entered in the drum. Although the basic program is written with respect to a particular carton, the same program enables the robot to operate on cartons of any size. For this reason, at the same time that the operator moves the head 212 to a position over the carton, he controls the fifth and sixth actuators to move grippers 216 and 220 to their maximum extended positions. For assurance that the first set of coordinates written into the drum define the right position of the axis of shaft of 230, in line with corner 2S8 ofthe carton. the operator can actually cause head 212 to be moved down over the box to a position such that grippers 214, 218 bear against the two respective sides of the carton. Optionally this motion includes a short motion in the X and Y directions. to press plates 214 and 218 against the sides of the carton. Thereafter, without changing the positions of the X and Y actuators, the head 212 is raised by the third or Z actuator to a position higher than the maximum height of the cartons to be handled by the robot. When the head is in the raised position, the attendant can operate recording control 12, causing the coordinate information provided by the encoders and related to the X, Y and Z actuators to be written into the first slot in the memory drum. The attendant advances drum [0 to the second slot, and uses function selection unit 24 to enter a control recording that is related to that function control 21 (among various function controls 21) which operates switch 26 to shift the Z actuator 19 for moving head 212 downward so as to subject that motion to control by sensor 250. During the set-up operation, the same effect can be achieved by moving the particular manual switch 14 which is related to the Z actuator 19 into its extreme right-hand setting. The X and Y coordinates of shaft 230 are recorded in the second slot when recording control 12 is operated, and at the same time suitable function control recordings are entered into the second column of the drum 10 for operating switch 26 so that the downward motion of head 212 takes place under control of sensor 250 for picking up a carton in the subsequent automatic operatron.

The thus recorded function control signal informs the Z-actuator to move head 212 down until sensor 250 is operated, that is, until the underside of head 212 presses against the top of carton 246, and then the Z- motion stops. The signal from sensor 250 can also be used to activate the actuators 19a, 19b for moving heads 216 and 220 under control of their sensors 252 and 254, respectively, for firmly gripping the carton. These sensors could be omitted entirely by using a limited-pressure system for causing the clamps to grip a carton, using any other suitable signalling system to indicate when a carton has been gripped.

The attendant then manually controls the raising of head 212 to an elevated position. During this operation no others of the various actuators 19 are operated. With the carton in the raised position, control 12 is operated. All of the coordinate information is written into the third slot in the memory drum. This third slot in the program controls the raising of any carton operated on by the robot.

The attendant then controls movement of the article handling apparatus under manual control only in the X and Y directions until the carton is above pallet 256 and edge 258 is directly above the corner of the pallet defined by edges 264, 266 and labelled PALLET (0,0)." As in the first step, it is necessary to position the carton such that edge 258 is in a predetermined X, Y position. This may be difficult for the operator to do if the carton is held in the elevated position. For this reason, during this step the operator can manually control the X, Y and Z coordinate actuators in such a way that the carton is actually placed on the pallet in the desired position. But before any coordinate information is written into the drum, the carton is raised in the Z direction to the elevated position. Thereafter, control 12 is operated to enter the recording of the X, Y and Z coordinates in the fourth slot of the drum. During subsequent operations, after the carton is raised to an elevated position above bin 248 it will be moved in the X and Y directions to an elevated position directly above the desired corner of the pallet. In the drawing, the axis of shaft 230 is labelled "PROGRAM (0,0) to indicate that the X and Y coordinates entered into the drum when the carton is moved to the elevated position above the pallet correspond to the corner of the pallet having coordinates (0,0).

The attendant then controls the recording of an instruction in the fifth drum slot which only causes downward movement of head 212 for lowering a carton to the pallet. However, at this point a problem arises because the robot as described has no means for determining when the carton has been lowered just the right amount so that its bottom surface rests on the pallet. When the head was lowered earlier over the carton in the bin, the robot could determine that movement in the vertical direction should stop in accordance with the operation of sensor 250. But once the carton is gripped, the sensor is continuously operated and as the carton is lowered onto the pallet the sensor may not be dependable for informing the robot control circuit that the downward drive of head 212 should cease. It would be possible for downward drive to be made responsive to the obstruction of downward motion of head 212, since that would signal the deposit ofa carton on a sup port surface. Sensor 250 could then be replaced by or could supplement such a detector. For example, in case the Z-motion actuator is a hydraulic cylinder or motor, the detector for interruption of the downward motion can be a fluid-flow detector that responds to the termination of fluid flow to or from the actuator.

As another way of dealing with this phase of the operation, the attendant can observe the descent of the carton carried by the grippers of head 212 under his manual control. When the carton has reached the pallet, the downward motion is manually terminated, and the Z-coordinate from the vertical-motion encoder can be recorded. That approach is suitable if only the same height of cartons is to be handled subsequently.

A third, more flexible way of dealing with this phase of the pallet-loading operation is described below.

Write circuit 27 is then readied to write information into the next slot. The attendant then controls the movement of grippers 216 and 220 in their outward or release directions. In the case of a single carton to be transferred from the bin to the pallet (without the stacking of cartons on the pallet), the two grippers can be moved outward to a limit or as far as desired by the attendant. However, as will become apparent below in connection with the loading of even levels of the pallet, gripper 220 should not be moved much because it may bear against a previously loaded carton on the pallet load. For this reason, if the attendant were writing a program to be used subsequently for the loading of pallets, he should open the two grippers only far enough to release the carton. This limited movement would not upset the previously loaded cartons on a pallet.

After releasing the grippers, the attendant controls the Z actuator which lifts head 212 to a safe elevation, taking into account the planned subsequent performance. Control 12 is then operated and the coordinates are stored in the next slot of the drum.

This completes the cycle of transfer of one carton from the bin into a corner of the pallet. If it were desired to repeat this routine over and over again, the attendant simply enters an instruction in the slot selection" part of the drum for controlling the advance of the drum back to the first slot in the sequence. This will cause the robot to cycle through the same routine over and over again, between the bin and the (0,0) corner of the pallet. US. Pat. No. 3,306, 17! shows how this routine can be used repeatedly, together with another program that contains the coordinates of each carton on a pallet, including coordinates for each carton in each row and in each level of the pallet. Different sets of coordinates are needed for different sizes of cartons. Generation of each set of coordinates is timeconsuming, and the dependence on the availability of coordinate recordings for any given size of carton represents an evident limitation on the use of such prior art program-controlled article transfer robots for loading pallets where the sizes of the cartons or other articles may change from time to time.

MODIFICATIONS OF THE ROBOT OF FIG. 1 FOR LOADING SUCCESSIVE CARTONS AUTOMATICALLY The robot of P16. 4 is the same as the robot of FIG. 1 except that it is modified to enable the circuit of FIGS. 5-7 to control the automatic loading of a complete pallet, taking into account the size of the cartons to be loaded on the pallet and the size of the pallet. All that is required of the attendant is the generation of a program for transferring a single carton from a pick-up point to one corner of the pallet. In this example, the automatic system assumes that the cartons that are to be loaded on any one pallet are all the same in size.

in FIG. I, the coordinates for the six actuators are transmitted over cable 31 to a set of six summers, as shown symbolically by the single summer I6. Conductor 3l-X in FIG. 4 represents one of the channels in cable 31, the channel over which information is transmitted to the actuator which controls movement of head 232 in FIG. 2 along trolley bar 234, i.e., movement of head 212 in the X direction. Although cable 3l-X originates in cable 31, it does not extend directly to summer 16. Instead, it extends to one input of each of gates 36-XC and 36-XO. Gate 36-XC is normally closed and cable 31-)( is thereby effectively extended back to the associated summer 16. However, when a function control signal is applied to conductor 37-X (one of many conductors of cable 23), gate 36-XC is opened and gate 36-XO is closed. At this time, the coordinate information on cable 3l-X is transmitted through gate 36-XO to cable 38-X. This cable is extended to FIG. and, as will be described below, the coordinate information on cable 38-X is modified and the modified coordinate information is extended back to cable 39-X. This cable is coupled to the output of gate 36-XC. The thus modified coordinate information obtained from drum is extended to the actuator which controls movement of head 212 in the X direction. The basic robot operation is not changed. The difference between the arrangements of FIGS. 1 and 4 is that when a control signal is applied to conductor 37-X from the memory drum, the X-coordinate information extended to the X-coordinate actuator is modified in accordance with the operation of the circuit of FIGS. 5-7.

Similar remarks apply to the Y- and Z-coordinate information. In the absence of control signals on conductors 37-Y and 37-Z, the Y- and Z-coordinate information from the memory drum is extended directly to the Y- and Z-coordinate actuators to control the movements of heads 236, 238 in the Y direction, and the movement of shaft 230 in the Z direction. When either of conductors 37-Y or 37-2 is energized, however, the associated Y- or Z-coordinate information is extended to the circuit of FIGS. 57 over one of cables 38-Y or 38-Z, and the coordinate information returned over the associated one of cables 39-Y or 39-2 is modified in accordance with the operation of that circuit.

In the illustrative program described in the preceding section, there was no specific example of information recorded on the drum in the function control instructions column. In the recording ofa program by the attendant to control the automatic loading ofa complete pallet, however, signals are recorded in various locations in this column. More specifically, in those locations in the drum containing X, Y and Z-coordinate data relating to the lowering or raising of head 212 from the pallet, signals are recorded in the function control instructions" column of the drum to indicate that the coordinate information should be modified in accordance with the operation of the circuit of FIGS. 57. Thus, starting with the fourth slot in the drum which specifies the position of head 212 at the elevated position above the pallet, the next few slots which control the sequence of lowering a carton to the pallet, releasing a carton and raising head 212 back to the elevated position, signals are recorded in the function control instructions" column of the drum to control the modification of the X, Y and Z-coordinate data. It is this modification of the data which enables successive cartons to be loaded at different positions on the pallet despite the fact that the basic program of the robot which is executed for each carton specifies the coordinates corresponding to the position of only the first carton on the pallet.

The robot of FIG. 1 is further modified in FIG. 4 to include OR gate 43. In FIG. 1, the output of stop control 11a directly controls slot selector 11 to enable the attendant to inerrrupt the automatic cycling of the robot when desired. In the circuit of FIG. 4, the output of stop control 11a is extended to one input of OR gate 43. The other input to the gate, conductor 42, is extended to the circuit of FIGS. 5-7. When this conductor is energized by the external circuit of FIGS. 5-7, advance of the drum to the next program step is blocked, and the robot stops operating.

The third change in the circuit of FIG. 1 relates to inclusion of conductors 40-G1, 40-G2 and 40-2 in FIG. 4. These conductors are coupled to the three sensors 250, 252 and 254 in FIG. 2, and are energized when the respective sensors are operated. The function of the signals on those three conductors will become apparent below in connection with the description of FIGS. 57.

The circuit of FIGS. 5-7 requires X, Y and Z dimensions to be supplied, representing the carton dimensions L, W and H. This information is produced automatically in the present apparatus. For this purpose there is a fourth change in the configuration of FIG. 1. Cables 41-01, 41-62 and 4l-Z in FIG. 4 are coupled to the encoders whose outputs respectively represent the distance between grippers 214 and 216, the distance between grippers 218 and 220, and the height of head 212 above bin 248. (Cable 41-2 is connected to the encoders through subtractor 55 as will be described below.) The information transmitted over these three cables informs the circuit of FIGS. 5-7 of the size of the carton. That circuit uses this information for modifying the one-carton loading routine automatically for loading a pallet fully with cartons.

The basic program for loading a complete pallet is different from the program described in detail above for transferring a single carton from the bin to the pallet in that certain external control signals must be recorded in the function control instructions" part of the drum. There are other changes which are required in the program, some of these changes relating to additional circuitry in FIG. 4, to be described.

In recording the illustrative program above, after the carton was above the pallet it was lowered by the operator until it was placed on the pallet. At that time, the operator controlled the writing of the coordinate data into the drum so that subsequent cartons of the same size could be loaded in the same position. The program was suitable for use only in conjunction with cartons of the same height. In order for the robot of FIG. 4 to operate automatically for loading cartons of any height on a pallet, the Z-coordinate stored in the drum and which controls the lowering of the carton on the pallet should be the coordinate corresponding to the surface of the pallet. That is, the Z-coordinate to be recorded in the program for loading a carton on the pallet should theoretically be such as to move sensor 250 of head 212 to a position where it bears against the pallet. This represents a carton of zero height. During the loading of the first carton and all other cartons in the first level, that Zcoordinate is modified by the height of the carton being loaded, and for higher layers of cartons the Z- coordinate is additionally modified by increments representing multiple carton heights. In actually recording the program which controls the lowering of the carton on the pallet, if the position of the pallet in the 2- direction is known by the attendant he can directly write this coordinate into the drum. On the other hand, if the coordinate is not known by the attendant, the head 212 can be lowered (first removing the depending clamps) until sensor 250 operates. At this time, the attendant is informed that the under-surface of head 212 bears against the pallet and the Z-coordinate can be recorded in the appropriate drum location. As for the position of bin 248, it may be feasible to place it at a vertical position corresponding to the zero Z coordinate of the robot or to adjust the Z encoder for that purpose, so that the Z position encoder will represent the dimension H when sensor 250 first operates. Alternatively, the bin may have any arbitrary Z coordinate and the Z encoder information transmitted over cable 41-Z may pass through an adder or subtractor which modifies it by a fixed constant so that the resulting Z-position coordinate on the cable is zero when head 212 bears against the bin. This will also provide dimension H on the cable when sensor 250 first operates.

A still different solution to the problem is shown in FIG. 4. During the initial recording of a program for transferring one carton from the bin to the pallet. which is here called the learning routine, a carton of known height is used. This height is first stored in standard height register 47. Ordinarily, the Z encoder data is transmitted to the write circuit 27 through gate 45-ZC in the path of cable 29-2. When conductor 56 is energized, however, gate 45-XC is opened and the data from the Z encoder is transmitted through gate 45-20 to the plus input of subtractor 48. Since the height of the carton is subtracted from the Z-encoder data in subtractor 48, the output data on cable 52 represents the Z coordinate of the bin floor. This operation takes place, i.e., conductor 56 is energized, only during the learning routine when the carton of standard height is operated upon.

The Z coordinate of the bin is transmitted over cable 29 to the write circuit 27 to be recorded in the proper location of the drum. It is also transmitted to one input of AND gate 53, another input to which is energized by the signal on conductor 56. The Z location of the bin floor is thus stored in Bin Z-Register 54. At this time, a third input to gate 53 is energized by manual control 49a.

During subsequent automatic operation, the Z encoder data is extended to the plus input of subtractor 55. The bin Z location, extended from register 54 to the minus input of the subtractor, when subtracted from the Z encoder data provides the actual height H of the carton worked on. It is the actual height which is transmitted over cable 41-2 to the circuit of FIGS. 5-7. This is discussed below in further detail.

Conductor 56, energized only during the writing of the initial routine, is connected to the output of AND gate 46. One input of this gate is connected to manual control 49 that is operated when it is necessary to record the Z location of the bin floor. As head 212 is lowered, it strikes the standard-height carton, and conductor 40-2 is energized. When this happens, a signal is sent over conductor 51 to turn on gate 46.

The same circuit is used to record the Z coordinate of the pallet at the proper slot of the memory drum during the recording of the basic carton-transfer program. At this time, however, manual control 49a is set to disable gate 53 so as to preserve the previous entry in the Bin Z-Register 54. With the known-height carton resting on the pallet and the carton clamps released, head 212 is manually operated under control of sensor 250 to press down on the carton. When downward motion is arrested under control of sensor 250, the Z encoder signal reaches subtractor 48 via gate 45-20. The difference appearing at the output of the subtractor on cable 29-2 reaches write circuit 27 for entry in the proper location of the drum, as the Z-coordinate of the pallet surface.

Another change in the program for loading a single carton on the pallet is desirable for loading multiple layers of cartons in a stable pattern. This change provides for the rotation of shaft 230 during loading of even" levels (2, 4, etc.) of cartons on the pallet. Shaft 230 is caused to rotate between the bin and the pallet in the clockwise direction (as viewed in FIG. 2) and to rotate 90 reversely in the return travel of head 212 to the bin. More specifically, at the same time that the X, Y and Z carton-depositing coordinates are modified by the circuit of FIGS. 5-7 in loading even layers of cartons, shaft 230 must be rotated.

For this purpose, conductor 44 is extended from the circuit of FIGS. $7 to cable 24 in FIG. 4. A signal on conductor 44, equivalent to any other signal from function control unit 21 or external control source 21b provided with the robot, informs the control circuit that shaft 230 must be rotated. Instructions in the slots of the drum corresponding to the steps involved in the transfer of head 212 from the bin to the pallet while raised, the lowering of head 22 to the pallet and su bsequent raising of the head appear on line 33. If conductor 44 and line 33 are both energized, a command is sent via gate 33a tocontrol unit 19a of the actuator which rotates shaft 230. Shaft 230 must be rotated 90 in the clockwise direction during those steps in the loading of every even level on the pallet, in order that alternate levels of cartons be arranged with the long dimension of the cartons of each layer crossing the long dimensions of the cartons of the next-lower layer. This is to insure the stability of the entire load.

Before proceeding with the analysis of FlGS. 5-7, the loading patterns of FIG. 3 will be described.

FIGS. 3A AND 38 LOADING PATTERNS The diagram for the odd levels in FIG. 3A shows the numbering of the cartons. Each carton is labelled 246- XXX. The first digit following the number 246- represents the level on the pallet, the second digit represents the row, and the third digit represents the position of the carton in the row. The first carton loaded on the pallet, corresponding to the carton shown on FIG. 2, thus bears the designation 246-111. The carton which is loaded next to it is designated 246-112. It is also in the first level and in the first row, but it is the second carton in the row. The last carton loaded on the first row on the first level is 246-l1n. Similar remarks apply to the other rows in the first level and the other levels. It should be noted that all of the cartons loaded in the first and all other odd levels are loaded with their longer dimension L in the X direction. This is the situation shown in FIG. 2.

To secure a more stable load on the pallet, the even levels are loaded with the cartons rotated clockwise 90, that is, with the longer dimension L extending in the Y direction. The even level shown in FIG. 3B is the second level, and thus the first digit following each carton designation 246- is the numeral 2. It is apparent from the diagram that the 90 rotation of shaft 230 causes the longer dimension of each carton to be in the Y direction when the carton is deposited.

However, the rotation of shaft 230 by 90 necessarily affects the position of each carton along the X and Y axes. Referring to FIG. 2, it will be noted that the axis of shaft 230 is designated PROGRAM (0,0)." In discussing the coordinates of the robot, some reference must be taken for the X and Y axes. The axis of shaft 230 is selected here. The basic robot program is such that when each carton is lowered to the pallet, the axis of shaft 230 is directly above the corner of the pallet designated PALLET (0,0)." Thus, when the first carton is loaded on the pallet, its edge 258 will correspond to the corner of the pallet as shown for the odd-level loading pattern of FIG. 3A. To load the second carton on the pallet, all that is required is to increment the X- coordinate (while the carton is being loaded onto the pallet and the grippers then raised) in order that edge 258 of the second carton shall have the same Y- coordinate as the first carton, but an X-coordinate greater by the length of the carton. Similar remarks apply to all of the cartons loaded in any row the X- coordinate which controls the loading of every carton is incremented by the circuit of FIGS. 5-7 prior to the loading of each carton except the first.

The Y-coordinate must be incremented by the width of the carton for loading cartons in the second row. As for the X-coordinates, they must be incremented in the second and succeeding rows by the length of each carton prior to the loading of each carton except the first.

This cycle is repeated for each row during the loading of the first and every other odd level of the pallet.

It will be recalled that in order to alternate the stacking patterns, each carton is rotated 90 about its edge 258 in loading even levels or layers. Except for this rotation, the basic carton loading program is the same. Program coordinate (0,0), cooresponding to the X and Z coordinates of edge 258, still corresponds to corner (0,0) of the pallet. This is due to the fact that while rotation ofshaft 230 necessarily affects the X and Y coordinates ofall other points on a carton, it does not affect the X, Y coordinate ofthe vertical corner 258 since the carton is rotated about this axis. Consequently, the first carton of an even level would ordinarily be loaded with corner 258 corresponding to the corner of the pallet. But with the carton rotated 90 around this edge, the entire carton would be to the left of edge 266 of the pallet. This situation is shown in FIG. 35 by the carton 246-211 that is shown in dotted lines. Its corner 258 corresponds to the program coordinates (0,0). Needless to say, this situation is unacceptable because the first carton in every row of every even level would be loaded off the pallet. The situation can be corrected by incrementing the X-coordinate controlling the loading ofthe first carton in each row of each even level of the pallet by the width of the carton. For this reason the circuit ofFlGS. S-7, when even levels are being loaded, causes the X-coordinate to be incremented by the width of the carton prior to the loading ofthe first carton in each row. Thereafter, in order to properly place successive cartons in each row, the X-coordinate is incremented by the width of each carbon prior to its loading. As for the Y-coordinate, it is incremented by dimension L prior to the loading of each row, except the first.

Thus, to summarize the differences between the odd and even level patterns, the following can be said:

1. During odd-level loading, shaft 230 is not rotated, and during even-level loading it is rotated in the clockwise direction.

2. During odd-level loading, prior to the loading of every carton except the first, the X-coordinate is incremented by the length of the carton, while in even-level loading, prior to the loading of every carton including the first, the X-coordinate is incremented by the width of the carton.

3. During odd-level loading, prior to the loading of the first carton in any row except the first, the Y- coordinate is incremented by the width of the carton, while in even-level loading, prior to the loading of the first carton in any row except the first, the Y coordinate is incremented by the length of the carton.

4. Since the basic Z coordinate used in the program for lowering head 212 to place a carton on the pallet corresponds to the Z coordinate of the pallet itself, prior to the loading of the first and all other levels, the Z coordinate used to place a carton directly on the pallet is incremented by the height of the carton.

MULTIPLE-CARTON LOADING CONTROLS (FIGS. S-7) USING STRUCTURE OF FIG. 2

Before proceeding with a description of the circuit of FIGS. 5-7, one clarifying remark must be made about the symbology employed. Much of the information transmitted throughout the circuit consists of digital coordinate data or dimensions, involving the transmission of a number of bits. An appropriate circuit can be constructed to operate on either a parallel or serial basis. The illustrative circuit operates on a parallel basis. When coordinate data is transmitted over a particular path, it is assumed that the path includes a number of channels even though only a single conductor is shown in the drawing. Also, certain gates are shown with two or more inputs, some of which are simply control conductors and at least one of which, in practice, is a cable over which parallel information is transmitted. In the actual construction of the circuit of FIGS. 5-7, such a gate may comprise a plurality of gates equal in number to the number of bits in the information to be transmitted, and the control conductors would be extended to the control inputs of each gate. In order not to needlessly complicate the drawing, a single gate has been shown in many instances, one of whose inputs is represented as a cable over which multiple-bit information is transmitted in parallel, and the other or others of whose inputs are simply control conductors for enabling the operation of the gate. It will be readily appar ent which gates are of this type inasmuch as coordinate or dimensional data is transmitted through each of these gates when the associated control conductor or conductors are energized.

As a matter of convenience, the elements in FIGS. 5, 6 and 7 bear "500," 600" and 700"-series numerals.

The apparatus of FIG. 2 shows a pallet 256 in position for loading. Any suitable pallet advance mechanism 710 is to be located there for removing each newly loaded pallet from this position and replacing it with an empty pallet. In the ordinary operation of the system, after a pallet has been completely loaded, comparator 708 operates and triggers pallet advance mechanism 710 through OR gate 713. The pallet advance mechanism transmits a signal over stop conductor 42 during its cycle of operation for causing the robot to cease cycling until the filled pallet is removed and a new pallet is moved into the loading position. Following the placing of a new pallet in position, the signal on stop conductor 42 is removed and the robot continues to cycle through its program. At the same time. a pallet in place" pulse on PIP pulse conductor 542 is generated by the pallet advance mechanism to control vari ous operations in the circuit of FIGS. -7. In this apparatus, described in detail below. the stop signal on conductor 42 is generated immediately after the grippers have come against the various sides of the carton in the bin or pick-up point, and all three sensors 250, 252 and 254 have operated.

In order to start the loading of the first pallet, the attendant causes the robot to cycle through the steps which cause the grippers to bear against a carton in the bin. The pallet advance mechanism 710 is then triggered by operating switch 712. The operation of switch 710 transmits a signal through OR gate 713 to the pallet advance mechanism. After the automatic operation is under way, the signal that initiates each cycle of pal let advance mechanism 710 is supplied through gate 713 by comparator 708. The pallet advance mechanism then controls the placing of a new pallet; and after the new pallet is in place, the pallet advance mechanism (having completed its cycle of operation) terminates the stop signal on conductor 42 and applies a pulse to conductor 542. in case a pallet-advance mechanism is not used, a manual control can be operated by the attendant to develop pulse PIP after having placed an empty pallet in the prescribed loading position.

This pulse PIP is extended to the clear inputs of X- register 50], Y-register 601, and Z-register 701. It is also extended through OR gate 515 to the clear input of Xcounter 516, through OR gate 613 to the clear input of Y-counter 614 and directly to the clear input of Z-counter 706. The three registers and the three counters are thus cleared.

The PIP pulse on conductor 542 is extended through delay 503 to one input of AND gate 502. The other input of this gate is extended to cable 41-0] on which appears the output of the encoder which represents the separation of grippers 214 and 2l6. The data is transmitted through gate 502 and stored in X-register 501 that was cleared by the PIP pulse just before the delay. The register thus contains the larger dimension L of the carton.

Similarly, the PIP pulse on conductor 542 is extended through delay 603 to one input of AND gate 602. the other input to which is cable 41-62. This cable is extended to the output of the encoder which represents the distance between the grippers 218 and 220. Consequently, the dimension W of the carton gripped by the robot is stored in the Y-register immediately after it is cleared.

The P1? pulse on conductor 542 is also extended through delay 703 to one input of AND gate 702. The other input of this gate is coupled to cable 41-2 which is connected to subtractor 55 (FIG. 4). it will be recalled that the robot stopped operating immediately after the carton was gripped and that it starts operating again when the PIP pulse on conductor 542 is generated. The pulse immediately clears register 701 and after a delay measured in microseconds, the PIP pulse is extended to an input of AND gate 702. Thus, at the time the gate is enabled to operate, the robot has not moved from its initial position gripping and bearing down on the carton in the bin. Subtractor 55, which subtracts the height of the bin floor from the Z- coordinate of head 212 as it bears on a carton in the bin, provides Z-register 701 with the height of the carton in the bin. Thus, the height of the carton is stored in the Z-register 701.

Referring to FIG. 4, it will be recalled that conductor 38-)( is the conductor which carries X-coordinate data from the memory drum to the X-coordinate actuator. Conductor 38-X is extended to FIG. 5 and terminates at terminal X1 within the block labelled 528. The box includes another terminal X2 connected to one input of summer 529. In the form of the control circuit now being described, applicable to the apparatus of FIG. 2, terminals X1 and X2 are connected to each other. They are shown as separate terminals in F l(]. 5 only because for a modification of the control system to adapt it to use with the apparatus of FIG. 9, an additional element is inserted between the two terminals X1 and X2. As far as the circuitry for operating the apparatus of FIG. 2 is concerned, cable 38-X is extended directly to one input of summer 529.

The other input to the summer is extended to the output of X-counter 516. Since the counter is initially cleared, the output of summer 529, connected to cable 39-)(, is the same as the input on cable 38-X. Consequently, the X-coordinate information that is transmitted to the X-coordinate actuator over cable 39-X at the output of summer 529 is the same as that stored in the memory drum. This is the X coordinate of the delivery point at the pallet for the first carton, at the corner of the pallet. It will be recalled that in connection with the loading of the first carton in each row of the first and any of the other odd levels, as discussed above in connection with FIG. 3A, the X coordinate supplied by the drum 10 is not incremented in preparation for transferring the first carton to the pallet.

The Y-coordinate information is transmitted from the memory drum 10 over cable 38-Y. This cable is extended to terminal Y1 in the block labelled 530 on FIG. 5. in the first illustrative embodiment of the invention, terminals Y1 and Y2 in block 530 are to be considered connected together. Consequently, cable 38-Y is effectively coupled directly to one input of summer 616. The other input to the summer is coupled to the output of counter 614 which is initially cleared. Consequently, the Y-coordinate-information which is transmitted over conductor 39-Y from the summer to the Y-coordinate actuator is the same as the Y-coordinate information stored in the memory corresponding to the corner of the pallet. During the loading of any level, the Y- coordinate information is not changed until after the first row has been loaded.

The Z-coordinate information is transmitted over cable 38-2 to one input of summer 707. It will be recalled that the program was recorded such that this Z coordinate represents the level of the bin floor. it is necessary to increment the Z coordinate by the height of the carton in order that the carton just be lowered to the pallet. The Z-register 701 contains the height of the carton provided by subtractor 55 as a result of the initial operation of AND gate 702. It will be noted that the output of AND gate 702 is extended through one input of OR gate 705 to the input of counter 706. Thus, after a delay period of delay 703 following the application of a PIP pulse to conductor 542, the height of the carton is stored in Z-counter 706. Immediately after the pallet is placed in position, the Z coordinate on cable 38-2 (which represents the bin floor) is modified in summer 707 by the addition to it of the value provided by subtractor 55, which is equal to the height of the carton. The incremented Z coordinate, representing the height of a carton added to the Z coordinate of the bin floor as stored in drum 10, is transmitted from summer 707 over cable 39-2. to summer 16 of the Z- coordinate actuator. At this time, however, when the first carton that is to be loaded on a new pallet is resting on the floor, the Z actuator is operated downward under control of sensor 250. This is due to a recording in the function control instruction" part of the slot of the drum that causes downward motion of head 212 toward the bin, thereby activating the related part of function control 21 to operate switch 26 accordingly.

With a new pallet in place and with the stop signal of line 42 terminated by the pallet advance mechanism 710, the robot goes through the regular carton-transfer routine. The Z-coordinate in the slot of drum corresponding to the downward motion of head 212 toward the pallet is modified so that the first carton can be lowered to the surface of the pallet, head 212 stopping one carton-height above the pallet. The first carton is deposited at the corner of the pallet as shown in the oddlevel diagram of FIG. 3A. Thereafter, the robot jaws open, and the robot starts to execute the basic cartontransfer program once again. In subsequent operations of head 212 for engaging additional cartons in the bin, it may be preferable to operate the head downward under control of its Z-encoder l7 and its Z-summer 16 rather than under control of sensor 250. In that case, the activating of sensor 250 to control downward movement of head 212 can be made responsive to a PIP pulse for automatically gauging the height of the first carton of each new pallet and for entering that height in the Z-register 701 and the Z-counter 706.

As soon as the second carton is first gripped by the robot, all three sensors 250, 252 and 254 operate and all of conductors 40-G1, 40-G2 and 40-2 are energized. (In FIG. 4, external control unit 21b represents these sensors.) These three conductors are extended to the three inputs of AND gate or coincidence gate 531, and the output of the gate is energize. The output signal is differentiated by differentiator 532 and the resulting pulse on conductor 543 is extended to two loadingmode controlling gates S10 and 512. More particularly, the pulse on conductor 543 passes through one input of OR gate 513 to a first of the three inputs of one loading-mode controlling gate 512.

The pulse on conductor 543 indicates that a carton in the bin has been gripped. A typical robot includes a mechanism in function control 21 for generating an advance pulse after each instruction is executed to control execution of the next instruction. In one instance described above, coincidence unit 21a (FIG. 4) signals completion of the program-coordinate instructions in all degrees of freedom and this activates the related function control 21 to determine the next slot of the drum that is to be sensed. In case of the gripper-closing step of the program, a simple timer in unit 21 can be relied on for the signal to advance the slot-selection part of the system. That timer program-advance pulse following operation of all three sensors can be used to energize conductor 543 in lieu of the signals generated on conductors 40-G1, 40-G2 and 40-Z. Alternatively, the output of differentiator 532 can be used as an input to unit 21 to advance the program.

A second of the inputs to gate 512 is connected over conductor 536 to the 1 (even level) output of odd/even flip-flop 615. This flip-flop is in the 0 state when an odd level is being loaded and is in the 1 state when an even level is being loaded. The initial PIP pulse on conductor 542 is extended to the set 0 input of the flip-flop 615 to set it in the 0 state prior to the loading of the first level on the pallet. Consequently, when the first level is being loaded the input of gate 512 connected to conductor 536 is de-energized and this gate does not operate.

The pulse on conductor 543 from the output of differentiator 532 is also extended to one of two controlling inputs of the second loading-mode controlling gate 510. A second controlling input of this gate is connected to conductor 539 which is coupled to the 0 output of flip-flop 615. Consequently, this gate is enabled during odd-level loading to transmit information supplied to the third input of gate 510 by the output of X- register 501. As soon as the second carton is gripped and the three sensors operate, the number stored in the X-register (the carton dimension L) is extended through gate 510 to one input of OR gate 511. The output of this OR gate is coupled to the input of X-counter 516. The X-counter was initially cleared. With the operation of gate 510, X-counter 516 is incremented by the value of the long dimension L of the carton. Thus, as soon as the second carton is gripped, the X-counter represents the dimension L. The output of the counter, connected to one input of summer 529, causes the initial X-program coordinate corresponding to the 0 coordinate of the pallet in the X direction to be incremented by the value L. The second carton is loaded in position 246-112 as shown on FIG. 3A due to the modification of the X-coordinate as the carton is being lowered to the pallet.

After the second carton is deposited, the robot shifts head 212 to the bin and picks up another carton. (It will be recalled that during the carton pick-up from the bin, the X, Y and Z coordinates as read from the record drum 10 are not modified by summers 529, 616 or 707 because coordinate modifying conductors 37-X, 37-Y and 37-2 of FIG. 4 are not energized by a sensed function-control recording.) As soon as the third carton is gripped, gate 531 operates once again and the contents of X register 50] are once again transmitted through gates 510 and 511 to X counter 516. The X coordinate on conductor 38-X, while the carton is being loaded on the pallet, is incremented by the value 2L and the third carton is loaded in position 246-113 of the odd-level diagram of FIG. 3A.

This process continues with successive cartons being loaded in adjacent positions. It is necessary to cease loading in the first row before the length of the row exceeds the maximum permissible value.

There are actually two tests which are performed to determine when no more cartons should be loaded in any row. One test is to verify that the loading of another carton will not exceed the maximum dimension of the pallet in the X direction. This dimension is stored in pallet X register 525. The register should be set by an 

1. Apparatus for transferring articles to a receiving area including an article transfer mechanism having an article holder, means for operating the article holder through desired paths in space, control means including means for storing a program for controlling said operating means to execute repeatedly a basic sequence of operations which includes seizing an article at a pick-up location, transferring the article to a particular location in the receiving area, releasing the article, and returning the article holder to a pick-up location, said article holder having article-calipering means cooperable with an article to be transferred to the receiving location for measuring at least one dimension thereof, and means responsive to said calipering means for modifying the control of the operating means by that part of said stored program that relates to the motion of the article holder at the receiving area in successive program cycles to transfer successive articles automatically to successive positions in said receiving area displaced from said particular location in the receiving area by distances that are a function of the measurement output of the article-calipering means.
 2. Article transfer apparatus in accordance with claim 1, wherein said calipering means includes two pairs of jaws operable symmetrically toward a common center for making mutually perpendicular measurements of the length and width of an article to be transferred, and wherein said apparatus includes means responsive to the calipering means for deriving halves of said measurements, said modifying means being responsive to said halfmeasurement deriving means for transferring the calipered article to a location in said receiving area displaced in mutually perpendicular directions from said particular location by said halves of said calipered measurements.
 3. Apparatus for transferring an article from a pick-up location to a receiving location, including articletransfer mechanism having an article holder, means for operating the article holder through desired paths in space, control means for causing said operating means to cause the article holder to pick up an article at the receiving location, transfer it to the receiving location and release the article centered at a particular location, said article holder having article-calipering means including jaws operable symmetrically toward the center of the article holder and said apparatus including means responsive to said calipering means for deriving half of said one dimension, and means responsive to said half-dimension deriving means for modifying the control effected by said control means for transferring the article to a location whose center is displaced from said particular location by one-half of the calipered dimension.
 4. Apparatus operable under program control for executing a series of work operations at a sequence of places, including a work device for effecting a work operation, and operating and control means for said work device, said lastnamed means including means for supporting and moving said work device in space and including at least three actuators for operating the work device in three coordinates, respectively, memory means for storing and providing control information representing a selected position of the work device in space, increment means for providing incremental control information representing a series of discrete displacement distances for operation of the work device to a sequence of places spaced progressively from said selected position, and means for combining the control information representing said selected position with the control information representing said series of displacement distances for controlling at least one of said actuators to effect motion of said work device to a sequEnce of places spaced from said selected position by a function of said displacement distances.
 5. Apparatus in accordance with claim 4 further including means for causing said work device to perform work operations at said sequence of places when the work device has been moved thereto as aforesaid.
 6. Apparatus in accordance with claim 4 further including means for limiting the extent of said sequence of places.
 7. Apparatus in accordance with claim 4, wherein said apparatus includes encoding means for providing codes corresponding to the positions of the work device in said at least three coordinates, manual means operable to effect operation of said work device to various positions including said selected position and operable to effect coordinate operation of said encoding means, and means for transferring position-representing codes from said encoding means to said memory when said work device is at said selected position.
 8. Apparatus in accordance with claim 7, wherein said memory has capacity for a sequence of position-representing codes, said apparatus having means causing operation of the actuators under control of a sequence of position-representing controls in said memory and, selectively, under the combined control as aforesaid of said memory and said increment means.
 9. Manipulating apparatus including an article holder, means for operating the article holder through desired paths in space, control means for said operating means including program means for storing representations of locations of the article holder including a prescribed location, means for measuring a dimension of an article to be transported by the article holder, and means for combining the output of the measuring means with the output of the program means to effect transfer of the article to a position displaced from said prescribed location by a distance that is a function of the output of said measuring means.
 10. Manipulating means in accordance with claim 9, wherein said measuring means includes jaws forming part of the article holder and measurement output means responsive to the separation of said jaws while gripping an article for providing output to said combining means. 